#ifndef EDITORCORE_HIERARCHYDELETER_H
#define EDITORCORE_HIERARCHYDELETER_H

#include "EditorCore/IEntity.h"
#include "EditorCore/Visitors/IEntityVisitor.h"
#include "Common/Collections/Vector.h"

namespace editor_core {

	class HierarchyDeleter : public IEntityVisitor
	{
	public:
		HierarchyDeleter();
		virtual ~HierarchyDeleter();

		virtual void VisitEntity( IEntity* entity );

		void DeleteHierarchy();
		void UndeleteHierarchy();

	private:
		cmn::Vector<IEntity*> m_entitiesToDelete;
	};

}

#endif
